1
迈向计算机视觉:为何选择CNN?
EvoClass-AI002第4讲
00:00

迈向计算机视觉

今天我们从使用基础线性层处理简单结构化数据,转向应对高维图像数据。一张彩色图像引入了显著的复杂性,标准架构无法高效处理。视觉领域的深度学习需要一种专门的方法:卷积神经网络(CNN)

1. 为何全连接网络(FCN)会失效

在全连接网络中,每个输入像素都必须与后续层中的每一个神经元相连。对于高分辨率图像而言,这会导致计算量爆炸式增长,使训练变得不可行,并因严重过拟合而导致泛化能力差。

  • 输入维度:一张标准的 $224 \times 224$ RGB 图像会产生 $150,528$ 个输入特征($224 \times 224 \times 3$)。
  • 隐藏层规模: 若第一层隐藏层包含 1,024 个神经元。
  • 总参数量(第一层): 约 1.54 亿个权重($150,528 \times 1024$),仅用于第一个连接块,需要巨大的内存和计算时间。
CNN 的解决方案
CNN 通过利用图像的空间结构来解决 FCN 的扩展性问题。它们使用小型滤波器识别模式(如边缘或曲线),将参数数量减少数个数量级,并提升模型鲁棒性。
comparison.py
终端bash — model-env
> 准备就绪。点击“运行”以执行。
>
参数效率检测器实时

运行对比以可视化参数数量。
问题 1
使用局部感受野在 CNN 中的主要优势是什么?
滤波器仅关注输入图像的一个小而局部的区域。
它允许网络一次性全局处理整张图像。
它确保所有参数被初始化为零。
它消除了对激活函数的需求。
问题 2
如果一个 $3 \times 3$ 的滤波器应用于整张图像,体现了 CNN 的哪个核心概念?
核归一化
共享权重
全连接
特征转置
问题 3
哪个 CNN 组件负责逐步降低特征图的空间维度(宽度和高度)?
ReLU 激活
池化层(下采样)
批归一化
挑战:识别关键 CNN 组件
将 CNN 机制与其功能优势联系起来。
我们需要构建一个参数高度高效的视觉模型,即使物体在图像中轻微移动也能识别。
步骤 1
哪种机制能确保网络无论特征(如对角线)位于画面何处都能识别?
解答:
共享权重。 通过在所有位置使用相同的滤波器,网络学习到平移不变性。
步骤 2
哪种架构选择使得 CNN 能以比 FCN 更少的参数检测特征?
解答:
局部感受野(或稀疏连接)。 不是连接到每个像素,而是每个神经元只连接到输入的一个小而局部的区域。
步骤 3
CNN 的结构如何实现分层特征学习(例如:边缘 → 角点 → 物体)?
解答:
堆叠层。 早期层通过卷积学习简单特征(如边缘)。深层网络则结合早期层的输出,形成复杂且抽象的特征(如物体)。